package com.yupi.usercenter.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.yupi.usercenter.model.domain.Monitor;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;

@Slf4j
public class ExcelListener extends AnalysisEventListener<Monitor> {

    // 创建一个List来保存读取到的所有数据
    private List<Monitor> monitorList = new ArrayList<>();

    @Override
    public void invoke(Monitor monitor, AnalysisContext analysisContext) {
        // 将每一行数据添加到List中
        monitorList.add(monitor);
        log.info("解析到一条数据:{}", JSON.toJSONString(monitor));
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        // 在读取完所有数据后，可以在这里处理所有数据
        log.info("所有数据解析完成，总共解析到{}条数据", monitorList.size());
        // 在这里可以对monitorList进行进一步处理
        processData(monitorList);
    }

    private void processData(List<Monitor> monitorList) {
        // 处理数据的逻辑
        for (Monitor monitor : monitorList) {
            log.info("处理数据: {}", JSON.toJSONString(monitor));
            // 例如，可以将数据存储到数据库
        }
    }

    public List<Monitor> getMonitorList() {
        return monitorList;
    }
}
